【速報】マネージドNTP Amazon Time Sync Serviceが登場 #reinvent
ども、大瀧です。 re:Invent2017の期間中に新サービスとしてAmazon Time Sync Serviceがリリースされました。早速試してみた様子をレポートします。
Amazon Time Sync Serviceとは
Time Sync ServiceはAWSが提供するマネージドのNTP(時刻同期)サービスです。従来のEC2ではAWSが提供するNTPサーバーは無く、インターネットにあるNTP Pool ProjectのNTPサーバーを参照するのが一般的でした。
Time Sync ServiceはVPC内のリンクローカルアドレス(169.254.169.123
*1)で提供されるため、インターネットへのトラフィックなしにEC2で時刻同期を行えるようになりました。
Time Sync Serviceの設定
EC2の以下のドキュメントに従って設定します。
最新のAmazon Linux AMIのchronyパッケージでは既定でTime Sync Serviceを参照するようになっているため、ntp
パッケージをchrony
に置き換えるだけで利用できます。chronyについては、以下のブログ記事を参考にしてください。
$ sudo service ntpd stop Shutting down ntpd: [ OK ] $ sudo yum erase -y ntp* 読み込んだプラグイン:priorities, update-motd, upgrade-helper 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ ntp.x86_64 0:4.2.6p5-44.34.amzn1 を 削除 ---> パッケージ ntpdate.x86_64 0:4.2.6p5-44.34.amzn1 を 削除 --> 依存性解決を終了しました。 依存性を解決しました ================================================================================================================================== Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================================================================== 削除中: ntp x86_64 4.2.6p5-44.34.amzn1 installed 1.3 M ntpdate x86_64 4.2.6p5-44.34.amzn1 installed 110 k トランザクションの要約 ================================================================================================================================== 削除 2 パッケージ インストール容量: 1.4 M Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction 削除中 : ntp-4.2.6p5-44.34.amzn1.x86_64 1/2 削除中 : ntpdate-4.2.6p5-44.34.amzn1.x86_64 2/2 検証中 : ntpdate-4.2.6p5-44.34.amzn1.x86_64 1/2 検証中 : ntp-4.2.6p5-44.34.amzn1.x86_64 2/2 削除しました: ntp.x86_64 0:4.2.6p5-44.34.amzn1 ntpdate.x86_64 0:4.2.6p5-44.34.amzn1 完了しました! $ sudo yum install -y chrony 読み込んだプラグイン:priorities, update-motd, upgrade-helper 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ chrony.x86_64 0:3.2-1.22.amzn1 を インストール --> 依存性の処理をしています: libseccomp.so.2()(64bit) のパッケージ: chrony-3.2-1.22.amzn1.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ libseccomp.x86_64 0:2.3.1-2.4.amzn1 を インストール --> 依存性解決を終了しました。 依存性を解決しました ================================================================================================================================== Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================================================================== インストール中: chrony x86_64 3.2-1.22.amzn1 amzn-updates 248 k 依存性関連でのインストールをします: libseccomp x86_64 2.3.1-2.4.amzn1 amzn-main 79 k トランザクションの要約 ================================================================================================================================== インストール 1 パッケージ (+1 個の依存関係のパッケージ) 総ダウンロード容量: 328 k インストール容量: 734 k Downloading packages: (1/2): libseccomp-2.3.1-2.4.amzn1.x86_64.rpm | 79 kB 00:00:00 (2/2): chrony-3.2-1.22.amzn1.x86_64.rpm | 248 kB 00:00:00 ---------------------------------------------------------------------------------------------------------------------------------- 合計 799 kB/s | 328 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : libseccomp-2.3.1-2.4.amzn1.x86_64 1/2 インストール中 : chrony-3.2-1.22.amzn1.x86_64 2/2 検証中 : chrony-3.2-1.22.amzn1.x86_64 1/2 検証中 : libseccomp-2.3.1-2.4.amzn1.x86_64 2/2 インストール: chrony.x86_64 0:3.2-1.22.amzn1 依存性関連をインストールしました: libseccomp.x86_64 0:2.3.1-2.4.amzn1 完了しました! $ cat /etc/chrony.conf # use the local instance NTP service, if available server 169.254.169.123 prefer iburst : $
では、chronydを起動して様子を確認してみます。
$ sudo service chronyd start Starting chronyd: [ OK ] $ chronyc sources -v 210 Number of sources = 5 .-- Source mode '^' = server, '=' = peer, '#' = local clock. / .- Source state '*' = current synced, '+' = combined , '-' = not combined, | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable. || .- xxxx [ yyyy ] +/- zzzz || Reachability register (octal) -. | xxxx = adjusted offset, || Log2(Polling interval) --. | | yyyy = measured offset, || \ | | zzzz = estimated error. || | | \ MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 169.254.169.123 3 6 377 35 +52us[ +300us] +/- 421us ^- four0.clover.mattnordhof> 2 6 377 34 -4907us[-4907us] +/- 89ms ^- time.rm.wtf 2 6 377 35 +1242us[+1242us] +/- 61ms ^- resolver1.skyfiberintern> 2 6 377 34 -2578us[-2578us] +/- 50ms ^- ha82.smatwebdesign.com 2 6 377 36 -5918us[-5671us] +/- 89ms $
同期できている様子がわかりますね!
なお、ドキュメントによると、現時点ではC5とM5インスタンスではTime Sync Serviceが未サポートとのことです。
まとめ
AWSが管理するマネージドなNTPサービス、Time Sync Serviceを紹介しました。インターネット接続なしで時刻同期ができるのは非常に嬉しいですね。 記事冒頭のAWSブログによると、AWSリージョンごとに精度の高い原子時計によるサービスともあるので、今回のre:Inventで発表されたリージョンを跨ぐような新機能・新サービスの確実な稼働にも一役買っていそうな仕組みですね!!
脚注
- ちなみに第4オクテットの123はNTPのポート番号ですw ↩